<!DOCTYPE html>
<html lang="en">
<head>
    
    <meta charset="utf-8">
    <title>Home - Documentation</title>
    
    
    <script src="scripts/prettify/prettify.js"></script>
    <script src="scripts/prettify/lang-css.js"></script>
    <!--[if lt IE 9]>
      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    <link type="text/css" rel="stylesheet" href="styles/prettify.css">
    <link type="text/css" rel="stylesheet" href="styles/jsdoc.css">
    <script src="scripts/nav.js" defer></script>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>

<input type="checkbox" id="nav-trigger" class="nav-trigger" />
<label for="nav-trigger" class="navicon-button x">
  <div class="navicon"></div>
</label>

<label for="nav-trigger" class="overlay"></label>

<nav >
    
    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="color.html">color</a><ul class='methods'><li data-type='method'><a href="color.html#.setColorOpacity">setColorOpacity</a></li></ul></li><li><a href="data.html">data</a><ul class='methods'><li data-type='method'><a href="data.html#.getMax">getMax</a></li><li data-type='method'><a href="data.html#.getMin">getMin</a></li><li data-type='method'><a href="data.html#.getTotal">getTotal</a></li><li data-type='method'><a href="data.html#.toArray">toArray</a></li><li data-type='method'><a href="data.html#.toJson">toJson</a></li></ul></li><li><a href="date.html">date</a><ul class='methods'><li data-type='method'><a href="date.html#.dateFormat">dateFormat</a></li><li data-type='method'><a href="date.html#.getDate">getDate</a></li></ul></li><li><a href="is.html">is</a><ul class='methods'><li data-type='method'><a href="is.html#.isIDCard">isIDCard</a></li><li data-type='method'><a href="is.html#.isPhone">isPhone</a></li><li data-type='method'><a href="is.html#.isType">isType</a></li></ul></li></ul>
</nav>

<div id="main">
    

    



    


    <section class="package">
        <h3> </h3>		
    </section>









    



    <section class="readme usertext">
        <article><h1>JsLibs</h1>
<h2>介绍</h2>
<p>一些随意封装的 js 函数</p>
<ul>
<li><a href="https://gitee.com/xiaoliu666666/jsLibs">仓库地址</a></li>
<li><a href="http://xiaoliu666666.gitee.io/jslibs/doc/index.html">文档地址</a></li>
<li><a href="https://gitee.com/xiaoliu666666/jsLibs/blob/master/log.md">变更记录</a></li>
</ul>
<h2>使用说明</h2>
<h3>1.  通过 git</h3>
<pre class="prettyprint source"><code>// 下载

> git clone git@gitee.com:xiaoliu666666/jsLibs.git //也可直接将 **export.js** 和 **index.js** 文件复制到项目中

// 引入
import JsLibs from '@/utils/jsLibs/index.js'

// 使用
console.log(jsLibs.getMax([10,20,30])); // 30
</code></pre>
<h3>2.  使用 npm</h3>
<pre class="prettyprint source"><code>// 下载

npm install hzx-jslibs

// 引入
import JsLibs from 'hzx-jslibs'

// 使用
console.log(jsLibs.getMax([10,20,30])); // 30
</code></pre>
<h3>3. 挂载到 vue 实例</h3>
<pre class="prettyprint source"><code>// main.js
import JsLibs from '@/utils/jsLibs/index.js'
Vue.prototype.$ = JsLibs

// 使用
console.log(this.$.getMax([10,20,30])); // 30
</code></pre>
<h2>开发指南</h2>
<h3>1. 安装依赖</h3>
<pre class="prettyprint source"><code>npm install 

</code></pre>
<ul>
<li>所需依赖如下</li>
<li>nodemon: 监听文件变化，重启 Node 服务器</li>
<li>browserify：将 Node.js 模块转为浏览器支持的 js 文件</li>
<li>jest: 测试框架</li>
<li>jsdoc: 根据注释生成文档</li>
<li>docdash: 文档主题</li>
</ul>
<h3>2. 运行和编译</h3>
<p>在 Node.js 环境运行</p>
<pre class="prettyprint source"><code>npm run serve // 启动 Node 服务器
</code></pre>
<p>打包到浏览器环境运行（不支持实时编译）</p>
<pre class="prettyprint source"><code>npm run build // 将文件编译为浏览器支持的文件
</code></pre>
<h3>3. 新增函数</h3>
<p>(1) 新增测试用例</p>
<p>在 test 文件夹下新增测试用例，测试驱动开发，代码编写完毕后应确保测试全部通过</p>
<ul>
<li>在 tests 文件夹下，新建函数对应的测试文件，必须以 .test.js 结尾</li>
<li>describe 命令对测试用例进行分组，通常一个函数为一组</li>
<li>test 命令为单个单元测试，expect 为预期的结果，参考 <a href="https://blog.csdn.net/haoaiqian/article/details/90721016">断言归纳</a></li>
<li>应列举所有可能的输入和输出，并确保测试通过</li>
</ul>
<pre class="prettyprint source"><code>npm run test // 函数实现后，执行测试

npm run coverage // 生成测试的覆盖率报告，生成文件在 coverage 下
</code></pre>
<p>(2) 新增函数</p>
<p>在 libs 文件夹下新增函数，通过 module.exports 导出（<strong>必须用用单独导出的方式</strong>）</p>
<pre class="prettyprint source"><code>// yes
module.exports.getMax = getMax
// no
module.exports = { getMax }
</code></pre>
<p>手动测试函数</p>
<ul>
<li>在根目录下的 index.js 中，新建 JsLibs 实例进行测试，只用于临时测试，测试通过的函数，及时删除测试</li>
</ul>
<p>(3) 生成文档</p>
<p>确认变更已经 npm run serve 过，否则无法生成最新的文档，文档取自 export.js 中的注释</p>
<pre class="prettyprint source"><code>npm run doc // 生成文件在 doc 文件夹
</code></pre>
<p>文档由代码注释块自动生成，注释格式如下，参考<a href="https://blog.csdn.net/iteye_11316/article/details/82046030?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&amp;depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control">JsDoc使用</a></p>
<pre class="prettyprint source"><code>/**
 * 判断数据类型
 * 
 * @memberof is
 * 
 * @param {Any} value 数据（必传）
 * 
 * @param {String} type 类型（必传）
 * &lt;br /> 可选：Array，Object，Number,String,Boolean,Undefined,Null,Function
 * 
 * @returns true or false
 * 
 * @example  
 * isType(1,'Number'); // true
 * getMax({name:'zhangsan'},'Array'); // false
 *
 */

</code></pre>
<p>libs 库中 namespace 下的 namespace.js 为文档的目录结构，也是注释中 <strong>@memberof</strong> 的取值,格式如下：</p>
<pre class="prettyprint source"><code>/**
 * @namespace is
 */
 function is(){
    
 }
</code></pre>
<h3>4.修改版本</h3>
<p>修改 index.js 中的 _v 号，x.y.z 代表：</p>
<ul>
<li>x: 结构性变更</li>
<li>y: 新增，删除函数或功能</li>
<li>z: 修复bug，优化内容</li>
</ul>
<p>在 log.md 中补充变更内容</p>
<h2>发布流程</h2>
<ul>
<li>登陆</li>
</ul>
<pre class="prettyprint source"><code>npm login 

</code></pre>
<ul>
<li>发布</li>
</ul>
<pre class="prettyprint source"><code>npm publish // 发布前必须更新 package.json 中的 version 号
</code></pre>
<h2>整体流程</h2>
<p>libs 文件夹 -&gt; 拼接成export.js -&gt; 挂载到 JsLibs 原型链上 -&gt; 实例化 JsLibs</p>
<p><strong>注：外部使用时，直接调用拼接的 export.js，不会再遍历 libs 文件夹</strong></p></article>
    </section>






    
    
</div>

<br class="clear">

<footer>
    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.6</a> on Wed Feb 24 2021 16:40:34 GMT+0800 (中国标准时间) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
</footer>

<script>prettyPrint();</script>
<script src="scripts/polyfill.js"></script>
<script src="scripts/linenumber.js"></script>



</body>
</html>